<#setting number_format="############.###">
<#setting date_format="yyyy-MM-dd">
<#setting datetime_format="yyyy-MM-dd HH:mm:ss">
<#setting boolean_format="true,false">
<#if request.getHeader("X-Requested-With")?? &&
request.getHeader("X-Requested-With").equalsIgnoreCase("XMLHttpRequest")>
    <#global isAjax = true>
<#else >
    <#global isAjax=false>
</#if>
<#assign comppath="" />
<#global path=comppath>
<#--
 | 取得时间的function，省去了各种判断
 | 作者: 杨涛
 | 创建时间: 2012-04-16
 -->
<#function getTime time="">
    <#if time?is_date>
        <#return time?datetime>
    <#else>
        <#return time>
    </#if>
</#function>

<#--
 | 取得日期的function，省去了各种判断
 | 作者: 杨涛
 | 创建时间: 2012-04-16
-->
<#function getDate time="">
    <#if time?is_date>
        <#return time?date>
    <#else>
        <#return time>
    </#if>
</#function>

<#--
 | 截取字符串  function
 | 作者:李洋
 | 创建时间: 2012-04-23
-->
<#function substr  info="",stindex=0 ,edindex=0>
    <#if info?is_string>
        <#return info?substring(stindex,edindex)>
    <#else>
        <#return info>
    </#if>
</#function>


<#--
 | 页面共用头部部分
 | 作者: 杨涛
 | 创建时间: 2012-04-16
-->
<#macro header>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <title>ivan</title>

    <link rel="stylesheet" href="css/basic.css"/>
    <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
    <!--[if lt IE 9]>
    <script type="text/javascript" src="js/html5.js"></script>
    <![endif]-->
    <script type="text/javascript" src="${comppath}js/jquery-uploadify/jquery.uploadify-3.1.min.js"></script>

    <link href="${comppath}css/jstree/jquery-ui-jstree.css" rel="stylesheet" type="text/css"/>

    <link rel="stylesheet" href="js/jquery-uploadify/uploadify.css"/>
    <link rel="stylesheet" href="css/twitter/css/bootstrap.min.css"/>
    <script type="text/javascript" src="${comppath}js/My97DatePicker/WdatePicker.js"></script>
    <script type="text/javascript" data-main="${comppath}js/require.main.js"
            src="${comppath}js/RequireJS/require.js"></script>
    <script type="text/javascript">
        var CONFIG = {
            ctx:'${ctx!}/',
            jstree_themes:'${comppath!}css/themes/' //jstree 主题包的位置
        };

        var T;

        require.config({
            baseUrl:'js',
            paths:{
                'order':'RequireJS/order',
                'text':'RequireJS/text'
            },
            urlArgs:'cache=v2'
        });

        //初始化工具
        require(['model.tools'], function (t) {
            T = t.tool;
        });

    </script>
</head>
</#macro>

<#--
 | 通用的HTML模板宏，加入常用的js引用和公用的部分
 | 作者: 杨涛
 | 创建时间: 2012-04-16
-->
<#macro html needMainBody=true>
    <#if isAjax>
    <script>
        var title = '${request.getAttribute("title")!}';
        if (title != '')
            document.title = title;
    </script>
        <#nested>
    <#else>
    <!doctype html>
    <html>
        <@header/>
    <body>
        <#if needMainBody>
        <div id="mainBody">
            <#nested>
        </div>
        <#else>
            <#nested>
        </#if>
    </body>
        <@footer/>
    </html>
    </#if>
</#macro>

<#--
 | 页面共用尾部部分(目前暂时为空)
 | 作者: 杨涛
 | 创建时间: 2012-04-16
-->
<#macro footer>
</#macro>


<#--
 | 中文冒号
-->
<#macro splitor>
：
</#macro>

<#--
 | 新增，查询，清空，可根据需求进行选择
 | 创建者:杨涛
 | 创建时间:2009-05-05
 | 修改时间:2009-07-18
 | 修改原因:增加参数
 | 版本:1.0
-->
<#macro listButton btnAdd=true btnQuery=true btnClear=true>
    <#if btnAdd>
    <a id="btnAdd" href="javascript:void(0)" class="btn btn-primary"><i class="icon-plus icon-white"></i>新增</a>
    </#if>
    <#if btnQuery>
    <a id="btnQuery" href="javascript:void(0)" class="btn btn-success"><i class="icon-search icon-white"></i>查询</a>
    </#if>
    <#if btnClear>
    <a id="btnClear" href="javascript:void(0)" onclick="clearForm(this);" class="btn"><i
            class="icon-refresh icon-white"></i>清空</a>
    </#if>
</#macro>

<#macro redStar>
<font color="red">*</font>
</#macro>

<#--
 | 居中的保存或者清空按钮
 | 创建者:杨涛
 | 创建时间:2009-05-05
 | 版本:1.0
-->
<#macro saveButton btnReturn=true btnFinish=false btnReview=false btnPrint=false >
<div style="text-align: center;">
    <a id="btnSave" href="javascript:void(0)" class="btn btn-primary"><i class="icon-ok"></i>保存</a>
    <#if btnFinish>
        <a id="btnFinish" href="javascript:void(0)" class="btn btn-primary"><i class="icon-ok"></i>完成</a>
    </#if>
    <#if btnReview>
        <a id="btnReview" href="javascript:void(0)" class="btn"><i class="icon-search"></i>预览</a>
    </#if>
    <#if btnPrint>
        <a id="btnPrint" href="javascript:void(0)" class="btn"><i class="icon-print"></i>打印</a>
    </#if>
    <#if btnReturn>
        <a id="btnReturn" href="javascript:void(0)" class="btn" onclick="closeDialog();"><i class="icon-arrow-left"></i>返回</a>
    </#if>
</div>
</#macro>


<#--
 | 根据审核状态显示操作按钮
 | 创建者:李洋
 | 创建时间:2012-04-26
 | 版本:1.0
-->
<#macro showoperate value="draft">
<div style="text-align: center;">

<#--草稿  编辑 ,提交审核,删除 -->
    <#if value=="draft"||value=="failure">
        <a id="editbutton" href="javascript:void(0)">编辑</a>
        <a id="applybutton" href="javascript:void(0)">提交审核</a>
        <a id="deletebutton" href="javascript:void(0)">删除</a>
    </#if>

<#--审核中 -->
    <#if value=="approving">
        --------
    </#if>

<#--未开始  邀请人员 ,修改时间,删除 -->
    <#if value=="notstart">
        <a id="editbutton" href="javascript:void(0)">邀请人员</a>
        <a id="applybutton" href="javascript:void(0)">修改时间</a>
        <a id="deletebutton" href="javascript:void(0)">删除</a>
    </#if>

<#--进行中  邀请人员, 监控会议,修改时间,删除 -->
    <#if value=="processing">
        <a id="invitebutton" href="javascript:void(0)">邀请人员</a>
        <a id="monitorbutton" href="javascript:void(0)">监控会议</a>
        <a id="updatetimebutton" href="javascript:void(0)">修改时间</a>
        <a id="deletebutton" href="javascript:void(0)">删除</a>
    </#if>
<#--已结束  报表统计 -->
    <#if value=="over">
        <a id="statisbutton" href="javascript:void(0)">报表统计</a>
    </#if>


</div>
</#macro>
<#--
 | 日期选择框，不带日历图标
 | 创建者:杨涛
 | 创建时间：2009-05-08
 | 版本:1.0
 | 参数说明:
 |    name:        日期选择框的name属性，默认为datePicker
 |    id:            日期选择框的id属性，默认为datePicker
 |    class:        日期选择框的class属性，默认为requireInput
 |    value:        日期选择框的值，默认为空字符串
 |    readonly:    是否只读，默认为true,即只读
 |    showTime:    是否只读，默认为false,即不带时间，设置为true,带时间
 | 使用示例: <@datePicker name="cityView.createTime" id="createTime" value=cityView.createTime/>
 | tips: 使用时，value一般为model里面定义的属性值，注意不要加""
-->
<#macro datePicker name="datePicker",id="datePicker",class="",value="",readonly=false,showTime=false>
        <input type="text" name="${name}" id="${id}" class="${class}"
    <#rt>
    <#if readonly>
               readonly<#rt>
    </#if>
    <#if showTime>
               onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})" value="${getTime(value)}" style="width: 120px;"/>
    <#else>
    onfocus="WdatePicker()" value="${getDate(value)}" style="width:68px;" />
    </#if>
</#macro>

<#--
 | 日期选择框，带日历图标:长度可以通过style="width:70px;"定义
 | 创建者:杨涛
 | 创建时间：2009-05-08
 | 版本:1.0
 | 参数说明:
 |    name:        日期选择框的name属性，默认为datePicker
 |    id:                  日期选择框的id属性，默认为datePicker
 |    class:            日期选择框的class属性，默认为requireInput
 |    value:        日期选择框的值，默认为空字符串
 |    readonly:    是否只读，默认为true,即只读
 |    img:            指定日历图标的位置，默认使用My97DatePicker的日历图标
 |    showTime:    是否只读，默认为false,即不带时间，设置为true,带时间
 | 使用示例:<@dateCalendar name="cityView.createTime" id="createTime" value=cityView.createTime/>
 | 使用时，value一般为model里面定义的属性值，注意不要加""
-->
<#macro dateCalendar name="datePicker",id="datePicker",class="",style="",showTime=false,value="",readonly=false,img="${path}/js/My97DatePicker/skin/datePicker.gif" size="6">
        <input type="text" name="${name}" id="${id}" class="${class}" style="${style}" size="${size}"
    <#rt>
    <#if readonly>
               readonly
        <#rt>
    </#if>
    <#if showTime>
               onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})" value="${getTime(value)}"/>
    <img onclick="WdatePicker({el:$dp.$('${id}'),dateFmt:'yyyy-MM-dd HH:mm:ss'})" src="${img}" width="16"
         height="22" align="absmiddle" style="cursor:pointer"/>
    <#else>
        <#lt> onfocus="WdatePicker()" value="${getDate(value)}" />
    <img onclick="WdatePicker({el:$dp.$('${id}')})" src="${img}" width="16" height="22" align="absmiddle"
         style="cursor:pointer"/>
    </#if>
</#macro>

<#--
 | 复选框:支持修改，查看的时候可以用
 | 创建者:杨涛
 | 创建时间:2009-05-13
 | 版本:1.0
 | 参数说明:
 |      name: 生成的label或者下拉单的名称，如果不输入，将取默认值ids
 |      id: 生成的label或者下拉单的id，如果不输入，将取默认值ids
 |      default: 默认值
 |      value： 实际值 如果默认值与实际值相等的就会画出一个checkBox框并且为选中状态，反之为不选中。
 | 使用示例: <@checkBox name="isChe" id="isChe" value="" />
-->
<#macro checkbox name="checkbox" id="checkbox" value=false checkedValue="true" disabled=false readonly=false tabindex="" onclick="" onchange="">
<input type="checkbox" id="${id?html}" name="${name?html}" value="${checkedValue}"
    <#rt>
    <#if onchange!="">
       onchange="${onchange}"
        <#rt>
    </#if>
    <#if onclick!="">
       onclick="${onclick}"
        <#rt>
    </#if>
    <#if value>
       checked="checked"
        <#rt>
    </#if>
    <#if disabled>
       disabled
        <#rt>
    </#if>
    <#if readonly>
       readonly
        <#rt>
    </#if>
    <#if tabindex !="">
       tabindex="${tabindex}"
        <#rt>
    </#if>
        />
<input type="hidden" id="__checkbox_${id?html}" name="__checkbox_${name?html}" value="${checkedValue}"/>
</#macro>


<#--
 | 下拉框
 | 创建者:杨涛
 | 创建时间：2010-05-20
 | 版本:1.0
 | 参数说明:
 |    type:       下拉框的类型,(比如：VEHTYPE，FRIDGETYPE等)，必输参数
 |    name:       下拉选择框的name属性，默认为name
 |    id:           下拉选择框的id属性，默认为id
 |  value:     下拉选择框的value属性，默认为""，一般在修改时需要把下拉框的code传入，新增不传参数
 |  hasEmpty:  是否将下拉框的第一行设置为请选择，false将下拉框的第一行设置为请选择，反正第一行为数据库中的下拉数据
 |  style:     样式，不传参数默认为"width:125px;"
 |  disabled:  是否可修改，默认为false，可修改,true表示不可修改
 |  onclick:   鼠标单击时触发的事件,默认为""
 |  onchange:  下拉列表属性发生变化时触发的事件,默认为""
 |  onfocus:   失去焦点时触发的事件,默认为""
 |  headerKey：  选择框默认选择条件KEY
 |    headerValue：选择框默认选择条件VALUE
 |    hasAuth:        是否需要加权限其值为(isRole=false/true)默认为false
 | 使用示例:
<@select type="VEHTYPE" nameRegion="triSelectView.regionName" idRegion="regionName" isRole="false" value=""
	hasEmpty="true" headerKey="" headerValue="请选择"  multiple="false" style="width:125px;" disabled="false" />
-->
<#macro select type="" list=[] name="name" id="id" value="" class="" style="width:100px" size=""
hasEmpty=false emptyKey="" emptyValue="全部" disabled=false
onchange="" onclick="" onfocus="" onblur="" hasAuth=false>
    <#if hasAuth>
        <#if type!="" && optionMap["${type}"]??>
            <#list optionMap["${type}"] as item>
                <#local emptyKey = emptyKey + ",'" +item.value + "'">
            </#list>
            <#if (emptyKey?length>0)>
                <#local emptyKey = emptyKey?substring(1)>
            </#if>
        <#elseif (0<list?size) >
            <#list list as item>
                <#local emptyKey = emptyKey +",'" +item.value + "'">
            </#list>
            <#if (emptyKey?length>0)>
                <#local emptyKey = emptyKey?substring(1)>
            </#if>
        </#if>
    </#if>
<select name="${name}" id="${id}" style="${style}"
    <#rt>
    <#if size!="">
        size="${size}"
    </#if>
    <#rt>
    <#if class!="">
        class="${class}"
    </#if>
    <#rt>
    <#if onchange!="">
        onchange="${onchange}"
        <#rt>
    </#if>
    <#if onclick!="">
        onclick="${onclick}"
        <#rt>
    </#if>
    <#if onfocus!="">
        onfocus="${onfocus}"
        <#rt>
    </#if>
    <#if disabled>
        disabled
        <#rt>
    </#if>
        >
    <#if hasEmpty>
        <option value="${emptyKey?html}">${emptyValue?html}</option>
    </#if>
    <#if type!="" && optionMap["${type}"]??>
        <#list optionMap["${type}"] as item>
            <option value="${item.value!}"
                <#rt>
                <#if value==item.value>
                    selected
                    <#rt>
                </#if>
                    >${item.text!}</option>
        </#list>
    <#elseif 0<list?size >
        <#list list as item>
            <option value="${item.value!}"
                <#rt>
                <#if item.value??&&value==item.value>
                    selected
                    <#rt>
                </#if>
                    >${item.text!}</option>
        </#list>
    </#if>
</select>
</#macro>

<#--
 | 分页组件
 | 创建者:杨涛
 | 创建时间：2012-03-16
 | 版本:1.0
 | 参数说明:
 |      id 分页div的Id
-->
<#macro pagination id="result">
<div id="${id}">
</div>
<script language="javascript" type="text/javascript">
    $(document).ready(function () {
        $('#${id}').bind('init', function () {
            var param = $(this).data("param");
            if (param) {
                var size = param.pageSize || 10;
                var pageNo = param.pageNo || 1;
                var url;
                if (param.url.indexOf('?') != -1) {
                    url = param.url + "&page.id=${id}&page.pageSize=" + size + "&page.pageNo=" + pageNo;
                } else {
                    url = param.url + "?page.id=${id}&page.pageSize=" + size + "&page.pageNo=" + pageNo;
                }
                var queryParam = param.param || {};
                $.ajax({
                    url:url,
                    type:"POST",
                    data:queryParam,
                    async:false,
                    context:$(this),
                    dataType:'html',
                    success:function (html) {
                        $(this).html(html);
                    }
                });
            }
        });
        $('#${id}').bind('reload', function () {
            var param = $(this).data("param");
            if (param) {
                var size = 10;
                var pageSize = $("#${id} #pageSize").val();
                if (pageSize) {
                    size = parseInt(pageSize);
                }

                var pageNo = 1;
                var pageNum = $("#${id} .pagination_pageNo").val();
                if (pageNum) {
                    pageNo = parseInt(pageNum);
                }
                var url;
                if (param.url.indexOf('?') != -1) {
                    url = param.url + "&page.id=${id}&page.pageSize=" + size + "&page.pageNo=" + pageNo;
                } else {
                    url = param.url + "?page.id=${id}&page.pageSize=" + size + "&page.pageNo=" + pageNo;
                }
                var queryParam = param.param || {};
                $.ajax({
                    url:url,
                    type:"POST",
                    data:queryParam,
                    async:false,
                    context:$(this),
                    dataType:'html',
                    success:function (html) {
                        $(this).html(html);
                    }
                });
            }
        })
    })
</script>
</#macro>


<#--
 | ajax查询的table上面的页码信息(配合分页组件使用)
 | 创建者:杨涛
 | 创建时间：2012-03-16
 | 版本:1.0
-->
<#macro pageInfo>
<input type='hidden' class='pagination_totalCount' value='#{page.total}'/>
<input type='hidden' class='pagination_totalPage' value='#{page.totalPages}'/>
<input type='hidden' class='pagination_pageNo' value='#{page.pageNo}'/>
<div class="pagination pagination-right" style="margin: 1px 0px;">
    <div style='float:right;text-align:left'>
    ${page.toTwitterStylePager()}
    </div>
    <div style="float:right;text-align: right;margin-right:10px;">
<span style="font-size:13px;">
共计<font color="red"><b>#{page.total}</b></font>条记录<#rt>
    <font color="red"><b>#{page.totalPages}</b></font>页 &nbsp;每页&nbsp;
    <#local pageSizeList=[{"value":10,"text":10}
    ,{"value":20,"text":20}
    ,{"value":50,"text":50}
    ,{"value":100,"text":100}]>
    <#local jumpFnc = "T.jump('"+(page.id!)+"' ,1)">
    <@select id="pageSize" list=pageSizeList onchange=jumpFnc value=page.pageSize
    style="width:50px;height:22px;padding:0px;margin:2px 0px 4px;" />
    &nbsp;&nbsp;条记录
</span>
    </div>
</div>
<div class="clear"></div>
</#macro>




<#-- 下拉选择 常量表 -->

<#--计费类型常量数组-->
<#--布尔类型数组-->
<#assign YES_NO={"0":"否"
,"1":"是"}>
<#--可以在这里定义新的常量数组-->

<#--性别常量数组-->
<#assign SEX_TYPE={"M":"男"
,"F":"女"}>

<#--状态-->
<#assign CONFERENCE_STATE={"DRAFT":"草稿"
,"APPROVING":"审核中"
,"FAILURE":"审核失败"
,"NOTSTART":"未开始"
,"PROCESSING":"进行中"
,"OVER":"已结束"
}>

<#--提醒状态-->
<#assign REMIND_STATE={"true":"已提醒"
,"false":"未提醒"
}>

<#--类别-->
<#assign PRODUCT_TYPE={"productype":"产品类"
,"marketype":"营销类"
,"mangtype":"管理类"
}>
<#--部门-->
<#assign DEPT_LIST={"1":"产品部"
,"2":"开发部"
,"3":"研发部"
}>
<#--参加状态-->
<#assign ATTEND_STATE={"attend":"参加"
,"absence":"缺席"
}>
<#--可以在这里定义新的常量数组-->

<#--
 | 常量数组注册表
 | 将常量类型和常量数组以键-值对的形式存放在一个集合中
 | 如果要增加新的常量类型和列表，请在后面加入
 -->
<#assign REGISTER_MAP={"yesNo":YES_NO
,"sexType":SEX_TYPE
<#--在这里加入自定义的常量类型和它的数组-->
,"conferenceState":CONFERENCE_STATE
,"producttype":PRODUCT_TYPE
,'deptlist': DEPT_LIST
,'attendState':ATTEND_STATE
,'remindState':REMIND_STATE
}>
<#--
 | 常量下拉框
 | 创建者:杨涛
 | 创建时间:2012-04-15
 | 版本:1.0
 | 参数说明:
 | name:		生成的label或者下拉单的名称，如果不输入，将取默认值const
 | id:			生成的label或者下拉单的id，如果不输入，将取默认值const
 | value:		生成的下拉单的默认选择值，如果不输入，将取默认值""
 | class:		生成的下拉单或者label的样式，如果不输入，将采用默认样式
 | type:		决定下拉单的类型，非常重要的属性，如果不输入将使用默认值yesNo，即是否下拉单
 | islabel:		决定生成label还是下拉单的标志，默认为false，即生成下拉单，如果设为true，
 | 				将根据value的值以及type属性，取出常量的名称，用label标签输出
 | 使用示例:	<@const name="isDel" id="isDel" />,<@const type="pricetype"/>
 -->
<#macro const name="const",id="const",value="",class="select",type="yesNo" islabel=false emptyOption=false emptyValue="全部" style="width:125px;">
    <#local hash=REGISTER_MAP[type]>
    <#if islabel>
    ${hash["${value}"]!}
    <#else>
    <select ${"name"}="${name}" ${"id"}="${id}" ${"value"}="${value}" ${"class"}="${class}" ${"style"}="${style}">
        <#if emptyOption>
        <option value="">${emptyValue}</option>
        </#if>
        <@option hash,value/>
    </select>
    </#if>
</#macro>

<#--
 | 生成下拉单的options选项
 | 创建者:杨涛
 | 创建时间:2009-05-08
 | 版本:1.0
 | 参数说明：
 | list:		常量数组
 | value:		下拉单默认选择值
 -->
<#macro option hash,value>
    <#list hash?keys as key>
        <#if value==key>
        <option ${"value"}=${key} selected>${hash[key]!}</option>
        <#else>
        <option ${"value"}=${key}>${hash[key]!}</option>
        </#if>
    </#list>
</#macro>

<#macro optionList optionList,name="const",id="const",emptyOption=false,emptyValue="全部",class="select",style="width:125px;">
<select ${"name"}="${name}" ${"id"}="${id}"${"class"}="${class}" ${"style"}="${style}">
    <#if emptyOption>
    <option value="">${emptyValue}</option>
    </#if>
    <#if optionList??>
        <#list optionList as option>
        <option ${"value"}=${option.value}>${option.text!}</option>
        </#list>
    </#if>
</select>
</#macro>

